// 添加公共功能到lib.rs文件

/// 设置中文字体
pub fn set_chinese_font(ctx: &eframe::egui::Context) {
    use eframe::egui::{FontFamily, FontId, TextStyle};

    // 构建字体数据库
    let mut fonts = eframe::egui::FontDefinitions::default();

    // 添加中文字体（使用系统默认字体）
    // 在不同系统上需要调整
    #[cfg(target_os = "windows")]
    fonts.font_data.insert(
        "microsoft_yahei".to_owned(),
        eframe::egui::FontData::from_static(include_bytes!("../resources/fonts/msyh.ttf")),
    );

    #[cfg(target_os = "macos")]
    {
        // 使用系统内置字体，而不是尝试加载文件
        // macOS已经有内置的中文字体，所以我们可以使用默认的字体
        // fonts.font_data.insert(
        //     "system_chinese".to_owned(),
        //     eframe::egui::FontData::from_family(FontFamily::Proportional),
        // );
    }

    #[cfg(target_os = "linux")]
    fonts.font_data.insert(
        "noto_sans_sc".to_owned(),
        eframe::egui::FontData::from_static(include_bytes!(
            "../resources/fonts/NotoSansSC-Regular.ttf"
        )),
    );

    // 为各种文本样式设置字体
    let font_name = if cfg!(target_os = "windows") {
        "microsoft_yahei"
    } else if cfg!(target_os = "macos") {
        "system_chinese"
    } else {
        "noto_sans_sc"
    };

    fonts
        .families
        .get_mut(&FontFamily::Proportional)
        .unwrap()
        .insert(0, font_name.to_owned());

    // 应用字体
    ctx.set_fonts(fonts);

    // 设置字体大小
    let mut style = (*ctx.style()).clone();
    style.text_styles = [
        (
            TextStyle::Heading,
            FontId::new(24.0, FontFamily::Proportional),
        ),
        (TextStyle::Body, FontId::new(16.0, FontFamily::Proportional)),
        (
            TextStyle::Monospace,
            FontId::new(14.0, FontFamily::Monospace),
        ),
        (
            TextStyle::Button,
            FontId::new(16.0, FontFamily::Proportional),
        ),
        (
            TextStyle::Small,
            FontId::new(12.0, FontFamily::Proportional),
        ),
    ]
    .into();
    ctx.set_style(style);
}
